package com.company.multithreading;


/**
 * 多线程即在同一时间，可以做多件事情
 * 创建多线程有三种方式，分别是继承多线程，实现Runnable接口，匿名类
 *
 * 线程概念：
 *  首先 要理解进程(Process)和线程(Thread)的区别
 *  进程：启动一个Lol.exe就叫一个进程，接着又启动一个DOTA.exe，这叫两个进程
 *  线程： 线程在进程内部同时做一些事情，比如在LOL中，很多的事情要同时做，比如"盖伦"击杀"提莫",
 * 同时"赏金猎人"又在击杀"盲僧"，这就是多线程来实现的。
 * 此处代码演示的是：不使用多线程的情况，只有在盖伦杀掉提莫后，赏金猎人才开始杀盲僧
 * **/
public class Hero {
    public String name;
    public float hp;
    public int damage;

    public boolean isDead(){
        return 0>= hp ? true:false;
    }
    public void attackHero(Hero h){
        try {
            //为了表示攻击需要时间，每次攻击暂停1000毫秒
            Thread.sleep(1000);
        } catch (InterruptedException e){
            // TODO auto-generated catch block
            e.printStackTrace();
        }
        h.hp -= damage;
        System.out.format("%s 正在攻击 %s, %s的血变成了%.0f%n", name, h.name, h.name, h.hp);

        if (h.isDead()){
            System.out.println(h.name + "死了！");
        }
    }
}